﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Collections.ObjectModel;
using System.Data;
using System.Windows.Media.Imaging;
using System.ComponentModel;
using System.Diagnostics;
using System.Windows.Controls;
using System.Globalization;
using produccion.modelo;
using produccion.AccesoDatos;
using produccion.clases;
using produccion.modulos;
using System.Windows.Input;
using System.Collections.Specialized;
using System.Reflection;
using System.IO;

namespace produccion.vistamodelo
{
    public class VMConsultaReparaciones : ViewModelBase
    {
        #region FJRF - VARIABLES GENERICAS DE TODO EL FORMULARIO
        MDOgeneral MdoGeneral = new MDOgeneral();//FJRF - Traemos toda la informacion y funciones de MdoGeneral

        DataTable DtEncabezadoYParametros;//FJRF - Usamos este DataTable para hacer consultas generales del os encabezados mas los parametros
        DataTable DtImprimir;//FJRF - Usamos este DataTable para imprimir
        DataTable DtConsulta;//FJRF - Usamos este DataTable para consultas temporales
        DataSet DsImprimir;//FJRF - Usamos este dataset para la impresion de consultas

        String StrConsulta;//FJRF - Para hacer consultas temporales
        //String StrRutaReporteCrystalReport = @"C:\produccion\produccion\reportes\";//FJRF - Esta es la ruta de los reportes de crystal reports
        String StrRutaReporteCrystalReport = @"reportes\";//FJRF - Esta es la ruta de los reportes de crystal reports
        #endregion

        #region Campos
        private MDOgeneral _mod = new MDOgeneral();
        private CLSMAECLIP _cliente = new CLSMAECLIP();
        private CLSMAEREF _refe = new CLSMAEREF();
        private MRecibirdePlanta _rec = new MRecibirdePlanta();
        #endregion

        #region Constructor
        public VMConsultaReparaciones()
        {
            try
            {
                lisclientes = _cliente.listaClienteReparaciones();
                buscarReferencia = new VMbuscarReferencia();
                buscarReferencia.TieneColor = false;
                buscarReferencia.PropertyChanged += onBuscarReferenciaPropertyChanged;

                if (MDOgeneral.conexion == null || MDOgeneral.conexion.State == ConnectionState.Closed)
                {
                    MDOgeneral.conectar();
                }
                strTituloVentana = "Consulta de Reparaciones - Usuario: " + MDOgeneral.usuario + " - [FRMConsultaReparaciones]";
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }
        #endregion

        #region Propiedades

        private string _strTituloVentana;
        public string strTituloVentana
        {
            get { return _strTituloVentana; }
            set { _strTituloVentana = value; base.OnPropertyChanged("strTituloVentana"); }
        }

        private List<CLSMAECLIP> _lisclientes = new List<CLSMAECLIP>();
        public List<CLSMAECLIP> lisclientes
        {
            get { return _lisclientes; }
            set { _lisclientes = value; base.OnPropertyChanged("lisclientes"); }
        }

        private CLSMAECLIP _selcliente = new CLSMAECLIP();
        public CLSMAECLIP selcliente
        {
            get { return _selcliente; }
            set { _selcliente = value; base.OnPropertyChanged("selcliente"); }
        }

        private string _strNumeroReparacion;
        public string strNumeroReparacion
        {
            get { return _strNumeroReparacion; }
            set { _strNumeroReparacion = value; base.OnPropertyChanged("strNumeroReparacion"); }
        }

        private string _strNumeroOrden;
        public string strNumeroOrden
        {
            get { return _strNumeroOrden; }
            set { _strNumeroOrden = value; base.OnPropertyChanged("strNumeroOrden"); }
        }

        private DateTime _dtmFechaInicial = Convert.ToDateTime("01/01/" + DateTime.Now.Year.ToString()).Date;
        public DateTime dtmFechaInicial
        {
            get { return _dtmFechaInicial; }
            set { _dtmFechaInicial = value; base.OnPropertyChanged("dtmFechaInicial"); }
        }

        private DateTime _dtmFechaFinal = DateTime.Now.Date;
        public DateTime dtmFechaFinal
        {
            get { return _dtmFechaFinal; }
            set { _dtmFechaFinal = value; base.OnPropertyChanged("dtmFechaFinal"); }
        }

        private string _strReferencia;
        public string strReferencia
        {
            get { return _strReferencia; }
            set 
            { 
                _strReferencia = value; 
                base.OnPropertyChanged("strReferencia");
                if (strReferencia != null)
                {
                    if (strReferencia.Length == 4)
                    {
                        _refe.CODREF_REF = strReferencia;
                        _refe.Consultar();
                        if (_refe.EXISTE)
                            strNombreReferencia = _refe.NOMREF_REF;
                        else
                        {
                            strNombreReferencia = "";
                            MessageBox.Show("Código de referencia no existe", "Inconsistencia", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK);
                        }
                    }
                    else
                    {
                        strNombreReferencia = "";
                    }
                }
            }
        }

        private string _strNombreReferencia;
        public string strNombreReferencia
        {
            get { return _strNombreReferencia; }
            set { _strNombreReferencia = value; base.OnPropertyChanged("strNombreReferencia"); }
        }

        private VMbuscarReferencia _buscarReferencia;
        public VMbuscarReferencia buscarReferencia
        {
            get { return _buscarReferencia; }
            set { _buscarReferencia = value; base.OnPropertyChanged("buscarReferencia"); }
        }
 
        private string _strDaño1;
        public string strDaño1
        {
            get { return _strDaño1; }
            set { _strDaño1 = value; base.OnPropertyChanged("strDaño1"); }
        }

        private string _strDaño2;
        public string strDaño2
        {
            get { return _strDaño2; }
            set { _strDaño2 = value; base.OnPropertyChanged("strDaño2"); }
        }

        private string _strDaño3;
        public string strDaño3
        {
            get { return _strDaño3; }
            set { _strDaño3 = value; base.OnPropertyChanged("strDaño3"); }
        }

        private string _strDaño4;
        public string strDaño4
        {
            get { return _strDaño4; }
            set { _strDaño4 = value; base.OnPropertyChanged("strDaño4"); }
        }

        private string _strDaño5;
        public string strDaño5
        {
            get { return _strDaño5; }
            set { _strDaño5 = value; base.OnPropertyChanged("strDaño5"); }
        }

        private string _strProceso1;
        public string strProceso1
        {
            get { return _strProceso1; }
            set { _strProceso1 = value; base.OnPropertyChanged("strProceso1"); }
        }

        private string _strProceso2;
        public string strProceso2
        {
            get { return _strProceso2; }
            set { _strProceso2 = value; base.OnPropertyChanged("strProceso2"); }
        }

        private string _strProceso3;
        public string strProceso3
        {
            get { return _strProceso3; }
            set { _strProceso3 = value; base.OnPropertyChanged("strProceso3"); }
        }

        private string _strProceso4;
        public string strProceso4
        {
            get { return _strProceso4; }
            set { _strProceso4 = value; base.OnPropertyChanged("strProceso4"); }
        }

        private string _strProceso5;
        public string strProceso5
        {
            get { return _strProceso5; }
            set { _strProceso5 = value; base.OnPropertyChanged("strProceso5"); }
        }

        private ObservableCollection<VMReparacion> _lisreparaciones = new ObservableCollection<VMReparacion>();
        public ObservableCollection<VMReparacion> lisreparaciones
        {
            get { return _lisreparaciones; }
            set { _lisreparaciones = value; base.OnPropertyChanged("lisreparaciones"); }
        }

        private VMReparacion _selreparacion;
        public VMReparacion selreparacion
        {
            get { return _selreparacion; }
            set { _selreparacion = value; base.OnPropertyChanged("selreparacion"); }
        }


        private DataTable _listadoDetalle = new DataTable();
        public DataTable listadoDetalle
        {
            get { return _listadoDetalle; }
            set { _listadoDetalle = value; base.OnPropertyChanged("listadoDetalle"); }
        }

        private VMvisorFotoReferencia _visorFotoReferencia = new VMvisorFotoReferencia();
        public VMvisorFotoReferencia visorFotoReferencia
        {
            get { return _visorFotoReferencia; }
            set { _visorFotoReferencia = value; base.OnPropertyChanged("visorFotoReferencia"); }
        }

        #endregion

        #region Comandos
        
        RelayCommand _cmdSalir;
        public ICommand cmdSalir
        {
            get
            {
                if (_cmdSalir == null)
                {
                    _cmdSalir = new RelayCommand(Salir);
                }
                return _cmdSalir;
            }
        }

        RelayCommand _cmdFiltrar;
        public ICommand cmdFiltrar
        {
            get
            {
                if (_cmdFiltrar == null)
                {
                    _cmdFiltrar = new RelayCommand(r => filtrar());
                }
                return _cmdFiltrar;
            }
        }

        RelayCommand _cmdDobleClic;
        public ICommand cmdDobleClic
        {
            get
            {
                if (_cmdDobleClic == null)
                {
                    _cmdDobleClic = new RelayCommand(r => marcar());
                }
                return _cmdDobleClic;
            }
        }

        RelayCommand _cmdLimpiar;
        public ICommand cmdLimpiar
        {
            get
            {
                if (_cmdLimpiar == null)
                {
                    _cmdLimpiar = new RelayCommand(r => limpiar());
                }
                return _cmdLimpiar;
            }
        }

        RelayCommand _cmdImprimirReparacion;
        public ICommand cmdImprimirReparacion
        {
            get
            {
                if (_cmdImprimirReparacion == null)
                {
                    _cmdImprimirReparacion = new RelayCommand(r => ImprimirReparacion());
                }
                return _cmdImprimirReparacion;
            }
        }

        RelayCommand _cmdBuscarReferencia;
        public ICommand cmdBuscarReferencia
        {
            get
            {
                if (_cmdBuscarReferencia == null)
                {
                    _cmdBuscarReferencia = new RelayCommand(r => buscar_Referencia());
                }
                return _cmdBuscarReferencia;
            }
        }

        #endregion

        #region Metodos

        void onBuscarReferenciaPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            try
            {
                if (e.PropertyName == "IsOpen")
                {
                    if (!buscarReferencia.IsOpen)
                    {
                        foreach (string x in buscarReferencia.listaProducto)
                        {
                            strReferencia = x;
                        }
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void buscar_Referencia()
        {
            try
            {
                buscarReferencia.IsOpen = true;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void filtrar()
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;
                string strCli ="";
                string strRep ="";
                string strOrd ="";
                string strFecI ="";
                string strFecF ="";
                string strRef="";

                strCli = selcliente.CODCLI_CLI !=null ? selcliente.CODCLI_CLI : "" ;
                strRep = strNumeroReparacion !=null ? strNumeroReparacion : "" ;
                strOrd = strNumeroOrden !=null ? strNumeroOrden : "" ;
                strFecI = dtmFechaInicial.ToString("dd/MM/yyyy");
                strFecF = dtmFechaFinal.ToString("dd/MM/yyyy");
                strRef = strReferencia !=null ? strReferencia : "" ;

                var listado = _rec.consultarReparaciones(strCli, strRep, strOrd, strFecI, strFecF, strRef);

                int numTotal = 0;
                List<VMReparacion> all = (from lis in listado select new VMReparacion(lis)).ToList();
                foreach (VMReparacion xx in all)
                {
                    xx.logSeleccionado = false;
                    numTotal = numTotal + 1;
                }
                lisreparaciones.Clear();
                lisreparaciones = new ObservableCollection<VMReparacion>(all);

                if (numTotal==1)
                {
                    lisreparaciones[0].logSeleccionado = true;

                    strDaño1 = lisreparaciones[0].strDaño1;
                    strDaño2 = lisreparaciones[0].strDaño2;
                    strDaño3 = lisreparaciones[0].strDaño3;
                    strDaño4 = lisreparaciones[0].strDaño4;
                    strDaño5 = lisreparaciones[0].strDaño5;
                    strProceso1 = lisreparaciones[0].strProceso1;
                    strProceso2 = lisreparaciones[0].strProceso2;
                    strProceso3 = lisreparaciones[0].strProceso3;
                    strProceso4 = lisreparaciones[0].strProceso4;
                    strProceso5 = lisreparaciones[0].strProceso5;
                    visorFotoReferencia.strCodigo = lisreparaciones[0].strReferencia;
                    visorFotoReferencia.strColor = lisreparaciones[0].strColor;
                    listadoDetalle = _rec.consultarDetalleReparaciones(lisreparaciones[0].strNumeroReparacion);
                }

                Mouse.OverrideCursor = Cursors.Arrow;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void marcar()
        {
            try
            {
                if (selreparacion != null)
                {
                    if (selreparacion.strNumeroOrden != null)
                    {
                        foreach (VMReparacion lis in lisreparaciones)
                        {
                            if (lis.strNumeroOrden == selreparacion.strNumeroOrden)
                            {
                                lis.logSeleccionado = true;
                                strDaño1 = lis.strDaño1;
                                strDaño2 = lis.strDaño2;
                                strDaño3 = lis.strDaño3;
                                strDaño4 = lis.strDaño4;
                                strDaño5 = lis.strDaño5;
                                strProceso1 = lis.strProceso1;
                                strProceso2 = lis.strProceso2;
                                strProceso3 = lis.strProceso3;
                                strProceso4 = lis.strProceso4;
                                strProceso5 = lis.strProceso5;
                                visorFotoReferencia.strCodigo = lis.strReferencia;
                                visorFotoReferencia.strColor = lis.strColor;
                                listadoDetalle = _rec.consultarDetalleReparaciones(lis.strNumeroReparacion);
                            }
                            else
                                lis.logSeleccionado = false;
                        }
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void ImprimirReparacion()
        {
            try//FJRF - Validamos el proceso de impresion 
            {
                String StrNumeroOrden;//FJRF - Creamos la variable que va a tener el numero de orden
                if (selreparacion == null)//FJRF - Si esto viene nulo hacemos lo siguiente
                {
                    StrNumeroOrden = "";//FJRF - No hay ordenes
                }
                else//FJRF - Si el elemento esta cargado entonces hacemos lo siguiente
                {
                    StrNumeroOrden = selreparacion.strNumeroOrden;//FJRF - Extraemos el numero de la orden
                }
                if (String.IsNullOrEmpty(StrNumeroOrden) == false)//FJRF - Si hay datos hacemos lo siguiente
                {
                    String StrRutaReporteAImprimir = MDOgeneral.StrRutaAplicacionReportes + "rptImpresoraDymoImprimirOrden.rpt";//FJRF - Armamos la ruta completa donde estara el reporte
                    //String StrRutaReporteAImprimir = @"C:\produccion\produccion\reportes\" + "rptImpresoraDymoImprimirOrden.rpt";//FJRF - Armamos la ruta completa donde estara el reporte
                    if (System.IO.File.Exists(StrRutaReporteAImprimir) == true)//FJRf - Si el reporte existe hacemos lo siguiente
                    {
                        EjecutarSp_REIMPRIMIRREPP(StrNumeroOrden);//FJRF - Ejecutamos el sp que reimprime ordenes

                        StrConsulta = "SELECT NROORD_TMP,  CODCLI_TMP,  NOMCLI_TMP,  FECORD_TMP,  CODREF_TMP,  CODCOL_TMP,  CODTAL_TMP,  NOMREF_TMP,  NOMCOL_TMP,  DANO_TMP, PROCESO_TMP, NROREP_TMP, SECCION_TMP, OBSERV_ERP FROM TMPIMPORDEN";
                        DtConsulta = MdoGeneral.consulta(StrConsulta);//FJRF - Consultamos los datos

                        #region FJRF - CargamosLosDatosQueSeVanAImprimir
                        if (DtConsulta == null)//FJRF - Verificamos si existen datos de la consulta que se va a imprimir y si no hay datos hacemos lo siguiente
                        {
                            Msgbox("PROCESO CANCELADO", "No existen datos para imprimir el reporte", MessageBoxButton.OK, MessageBoxImage.Error); //FJRF - Informamos al usuario
                            return;//FJRF - Nos salimos
                        }
                        else//FJRF - Si hay datos hacemos lo siguiente
                        {
                            String StrNumeroOrdenEntrega = "";//FJRF - Para el manejo de las entregas
                            for (int IntFilaActual = 0; IntFilaActual < DtConsulta.Rows.Count; IntFilaActual++)//FJRF - Recorremos la informacion encontrada
                            {
                                StrNumeroOrdenEntrega = DtConsulta.Rows[IntFilaActual][0].ToString();//FJRF - Extraemos la entrega
                                if (String.IsNullOrEmpty(StrNumeroOrdenEntrega) == false)
                                {
                                    DtConsulta.Rows[IntFilaActual][0] = "*" + StrNumeroOrdenEntrega + "*";
                                }
                            }

                            DtImprimir = new DataTable("DtDatosReporte");
                            DtImprimir = DtConsulta.Copy();//FJRF - Hacemos una copia de los datos
                            DtImprimir.TableName = "DtDatosReporte";//FJRF - Renombramos la tabla

                            #region FJRF - ImprimimosElReporte
                            DsImprimir = new DataSet("dsImpresoraDymoImprimirOrden");//FJRF - DataSet que esta vinculado al CrystalReport

                            //FJRF - ADICIONAMOS LAS TABLAS QUE NECESITE EL DATASET ASOCIADO AL CRYSTAL
                            DsImprimir.Tables.Add(DtImprimir.Copy());//Detalle del Informe

                            //produccion.reportes.FrmImprimirCrystal vista = new produccion.reportes.FrmImprimirCrystal();//FJRF - Enviamos los datos para que se imprima el reporte
                            //vista.ImprimirCrystalReport(DsImprimir, StrRutaReporteAImprimir, false, 2);

                            produccion.reportes.Vista vista = new produccion.reportes.Vista { ds = DsImprimir, reporte = StrRutaReporteAImprimir };//FJRF - Enviamos los datos para que se imprima el reporte
                            vista.Show();//FJRF - Ejecutamos el reporte para que se muestre visualmente

                            Msgbox("PROCESO EXITOSO", "Impresión realizada con exito", MessageBoxButton.OK, MessageBoxImage.Information);//FJRF - Enviamos un mensaje al usuario
                            #endregion
                        }
                        #endregion
                    }
                    else//FJRF - Si el reporte no existe hacemos lo siguiente
                    {
                        Msgbox("PROCESO CANCELADO", "El reporte no existe en la ruta: [" + StrRutaReporteAImprimir + "] por favor comuniquese con el administrador del sistema para que corriga este inconveniente.", MessageBoxButton.OK, MessageBoxImage.Error);//FJRF - Enviamos un mensaje al usuario
                    }
                }
                else//FJRF - Si no hay orden hacemos lo siguiente
                {
                    Msgbox("PROCESO CANCELADO", "No hay una orden seleccionada", MessageBoxButton.OK, MessageBoxImage.Stop);//FJRF - Enviamos un mensaje al usuario
                }
            }
            catch (Exception ex)//FJRF - Si se presenta algun error hacemos lo siguiente
            {
                Msgbox("PROCESO CANCELADO - [Error del sistema]", ex.Message.ToString(), MessageBoxButton.OK, MessageBoxImage.Error);//FJRF - Enviamos un mensaje al usuario
            }
        }

        private void EjecutarSp_REIMPRIMIRREPP(string strNumeroDeOrden)//FJRF - Este procedimiento ejecuta un sp
        {
            try
            {
                MDOgeneral.spComando.CommandText = "SP_REIMPRIMIRREPP";
                MDOgeneral.spComando.Connection = MDOgeneral.conexion;
                MDOgeneral.spComando.CommandType = CommandType.StoredProcedure;
                MDOgeneral.spComando.Parameters.Clear();

                //Input
                MDOgeneral.spComando.Parameters.Add("pva_nroord", Oracle.DataAccess.Client.OracleDbType.Varchar2, 40).Value = strNumeroDeOrden;

                //Output salidas
                MDOgeneral.spComando.Parameters.Add("pva_result", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.Parameters.Add("pva_errusu", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.ExecuteNonQuery();
            }
            catch (Exception ex) { throw ex; }
        }

        #region FJRF - CajaDeTextoMsgbox
        protected void Msgbox(String StrCaption, String StrMensaje, MessageBoxButton MsbTipoBoton, MessageBoxImage MsbTipoImagenIcono)
        {
            MessageBox.Show(StrMensaje, StrCaption, MsbTipoBoton, MsbTipoImagenIcono);
        }
        #endregion

        void limpiar()
        {
            try
            {
                selcliente = null;
                strNumeroReparacion = null;
                strNumeroOrden = null;
                dtmFechaInicial = Convert.ToDateTime("01/01/" + DateTime.Now.Year.ToString()).Date;
                dtmFechaFinal = DateTime.Now.Date;
                strReferencia = null;
                strNombreReferencia = null;
                strDaño1 = null;
                strDaño2 = null;
                strDaño3 = null;
                strDaño4 = null;
                strDaño5 = null;
                strProceso1 = null;
                strProceso2 = null;
                strProceso3 = null;
                strProceso4 = null;
                strProceso5 = null;
                lisreparaciones.Clear();
                listadoDetalle.Clear();
                if (visorFotoReferencia != null)
                {
                    if (visorFotoReferencia.strCodigo != null)
                    { 
                        visorFotoReferencia.strCodigo = "";
                        visorFotoReferencia.strColor = "";
                        base.OnPropertyChanged("visorFotoReferencia");
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        void Salir(Object frmformulario)
        {
            ((Window)frmformulario).Close();
        }

        #endregion

 
    }

    #region Vista-modelo
    public class VMReparacion : ViewModelBase
    {

        #region Campos
        private MRecibirdePlanta _reparacion = new MRecibirdePlanta();
        #endregion

        #region Constructor

        public VMReparacion(MRecibirdePlanta reparaciones)
        {
            _reparacion = reparaciones;
        }

        #endregion

        #region Propiedades

        public string strNumeroOrden
        {
            get { return _reparacion.strNumeroOrden; }
            set { _reparacion.strNumeroOrden = value; base.OnPropertyChanged("strNumeroOrden"); }
        }

        public string strNumeroReparacion
        {
            get { return _reparacion.strNumeroReparacion; }
            set { _reparacion.strNumeroReparacion = value; base.OnPropertyChanged("strNumeroReparacion"); }
        }

        public Int32 numConsecutivo
        {
            get { return _reparacion.numConsecutivo; }
            set { _reparacion.numConsecutivo = value; base.OnPropertyChanged("numConsecutivo"); }
        }

        public string strCodigoCliente
        {
            get { return _reparacion.strCodigoCliente; }
            set { _reparacion.strCodigoCliente = value; base.OnPropertyChanged("strCodigoCliente"); }
        }

        public string strNombreCliente
        {
            get { return _reparacion.strNombreCliente; }
            set { _reparacion.strNombreCliente = value; base.OnPropertyChanged("strNombreCliente"); }
        }

        public string strReferencia
        {
            get { return _reparacion.strReferencia; }
            set { _reparacion.strReferencia = value; base.OnPropertyChanged("strReferencia"); }
        }

        public string strNombreReferencia
        {
            get { return _reparacion.strNombreReferencia; }
            set { _reparacion.strNombreReferencia = value; base.OnPropertyChanged("strNombreReferencia"); }
        }

        public string strColor
        {
            get { return _reparacion.strColor; }
            set { _reparacion.strColor = value; base.OnPropertyChanged("strColor"); }
        }

        public string strNombreColor
        {
            get { return _reparacion.strNombreColor; }
            set { _reparacion.strNombreColor = value; base.OnPropertyChanged("strNombreColor"); }
        }

        public string strTalla
        {
            get { return _reparacion.strTalla; }
            set { _reparacion.strTalla = value; base.OnPropertyChanged("strTalla"); }
        }

        public DateTime dtmFechaRecibido
        {
            get { return _reparacion.dtmFechaRecibido; }
            set { _reparacion.dtmFechaRecibido = value; base.OnPropertyChanged("dtmFechaRecibido"); }
        }

        public string strTipo
        {
            get { return _reparacion.strTipo; }
            set { _reparacion.strTipo = value; base.OnPropertyChanged("strTipo"); }
        }

        public string strDaño1
        {
            get { return _reparacion.strDaño1; }
            set { _reparacion.strDaño1 = value; base.OnPropertyChanged("strDaño1"); }
        }

        public string strDaño2
        {
            get { return _reparacion.strDaño2; }
            set { _reparacion.strDaño2 = value; base.OnPropertyChanged("strDaño2"); }
        }

        public string strDaño3
        {
            get { return _reparacion.strDaño3; }
            set { _reparacion.strDaño3 = value; base.OnPropertyChanged("strDaño3"); }
        }

        public string strDaño4
        {
            get { return _reparacion.strDaño4; }
            set { _reparacion.strDaño4 = value; base.OnPropertyChanged("strDaño4"); }
        }

        public string strDaño5
        {
            get { return _reparacion.strDaño5; }
            set { _reparacion.strDaño5 = value; base.OnPropertyChanged("strDaño5"); }
        }

        public string strProceso1
        {
            get { return _reparacion.strProceso1; }
            set { _reparacion.strProceso1 = value; base.OnPropertyChanged("strProceso1"); }
        }

        public string strProceso2
        {
            get { return _reparacion.strProceso2; }
            set { _reparacion.strProceso2 = value; base.OnPropertyChanged("strProceso2"); }
        }

        public string strProceso3
        {
            get { return _reparacion.strProceso3; }
            set { _reparacion.strProceso3 = value; base.OnPropertyChanged("strProceso3"); }
        }

        public string strProceso4
        {
            get { return _reparacion.strProceso4; }
            set { _reparacion.strProceso4 = value; base.OnPropertyChanged("strProceso4"); }
        }

        public string strProceso5
        {
            get { return _reparacion.strProceso5; }
            set { _reparacion.strProceso5 = value; base.OnPropertyChanged("strProceso5"); }
        }

        public Boolean logSeleccionado
        {
            get { return _reparacion.logSeleccionado; }
            set { _reparacion.logSeleccionado = value; base.OnPropertyChanged("logSeleccionado"); }
        }

        #endregion

        #region Metodos

        public MRecibirdePlanta getProcesos()
        {
            return _reparacion;
        }

        #endregion

    }
    #endregion
}
